import logging
import sqlite3
import os

from filetools.base import FileBase

logging.getLogger(__name__)

class Database(FileBase):
    """
    本类实现服用数据的数据库交互功能
    """
    def __init__(self):
        super().__init__()
        self.conn = None
        self.init_database() # 初始化数据库
    def init_database(self):
        """初始化数据库"""
        if not os.path.exists('../../database'): # 如果文件夹不存在，则创建文件夹
            os.mkdir('../../database')
            logging.info('检测到数据库未创建')
            logging.info('创建数据库')
        self.conn = sqlite3.connect('../../database/database.db')  # 创建数据库
        cursor = self.conn.cursor()
        cursor.execute('''
                    CREATE TABLE IF NOT EXISTS dick(
                        ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT ,
                        ZH TEXT not null ,
                        EN TEXT not null )
                    ''')
        self.conn.commit() # 提交事务
        logging.info('数据库完成初始化')
    def write_data(self,data):
        """写入数据库"""
        cursor = self.conn.cursor()
        cursor.execute('''
                    INSERT INTO dick(ZH,EN) VALUES(?,?)
                    ''',(data['zh'],data['en']))
        self.conn.commit()
        self.conn.close()

    def read_data(self,data):
        """读取数据库"""
        cursor = self.conn.cursor()
        cursor.execute('''
                    SELECT * FROM dick WHERE EN=?
                    ''',(data,))
        result = cursor.fetchall()[0]
        logging.info('本地数据库命中')
        self.conn.close()
        return result[1],result[2]

if __name__ == '__main__':
    a=Database().read_data('hello')
    print(a)